package com.zbcbms.dao;

import com.zbcbms.entity.dto.AddBookBorrowDto;
import com.zbcbms.entity.chart.BookBorrowChart;
import com.zbcbms.entity.vo.BookBorrowVo;

import java.util.List;

/**
 * @author fengq
 */
public interface BookBorrowDao extends BaseDao<AddBookBorrowDto> {
    /**
     * selectBorrowByUser 根据用户编号查询寻借阅记录
     * @param userNumber
     * @return
     */
    List<BookBorrowVo> selectBorrowByUser(String userNumber);

    /**
     * selectAllBorrow 查询所有的结束记录
     * @return
     */
    List<BookBorrowVo> selectAllBorrow();

    /**
     *selectBorrowCountByTime 根据时间查询借阅数量
     * @param date
     * @return
     */
    long selectBorrowCountByTime(String date);

    /**
     * selectReturnCountByTime 根据时间查询换数量
     * @param date
     * @return
     */
    long selectReturnCountByTime(String date);

    /**
     * selectCountByBookName
     * @return
     */
    List<BookBorrowChart> selectCountByBookName();

    /**
     * selectAllDeletedBorrow 查询所有的
     * @return
     */
    List<BookBorrowVo> selectAllDeletedBorrow();

    /**
     * deletedByBookNumber
     * @param bookNumber
     * @param isDeleted
     * @return
     */
    boolean updateDeletedByBookNumber(String bookNumber,int isDeleted);

    /**
     * deletedByUserNumber
     * @param userNumber
     * @param isDeleted
     * @return
     */
    boolean updateDeletedByUserNumber(String userNumber,int isDeleted);

    /**
     * selectBookBorrowVoByKeyword
     * @param keyword
     * @return
     */
    List<BookBorrowVo> selectBookBorrowVoByKeyword(String keyword);

    /**
     * selectBookBorrowVoByKeywordAndUserNumber  根据用户的编号和关键词
     * @param keyword
     * @param userNumber
     * @return
     */
    List<BookBorrowVo> selectBookBorrowVoByKeywordAndUserNumber(String keyword,String userNumber);

    /**
     *  根据用户和剩余天数
     * @param number
     * @param days
     * @return
     */
    List<BookBorrowVo> selectBookBorrowByUserAndDayNums(String number,String days);
}
